package com.bocloud.kong.service;

import java.util.List;

import com.bocloud.kong.model.Api;
import com.bocloud.model.Result;

/**
 * Title: ApiService Description:
 *
 * @author lkx
 * @version 1.0.0
 * @since 2017-02-15 17:51
 */
public interface ApiService {

	/**
	 * 通过 API ID 查询 API 信息
	 *
	 * @param apiId
	 *            API 在 Kong 上注册时候的 ID
	 * @return 当 API 信息不存在时, 会返回 null
	 */
	Api query(String apiId);

	/**
	 * 保存 API
	 *
	 * @param api
	 *            待保存的 API 实体
	 * @return 存储结果
	 */
	Result save(Api api);

	/**
	 * 查询全部符合查询条件的 API
	 *
	 * @param api
	 *            查询的API参数
	 * @return 查询结果
	 */
	List<Api> queryAll(Api api);

	/**
	 * 删除 API
	 *
	 * @param apiId
	 *            API ID
	 */
	void delete(String apiId);

	/**
	 * 判断某个 API 是否存在
	 *
	 * @param apiName
	 *            API 名称
	 * @return 是否存在
	 */
	boolean isApiNameExist(String apiName);

	boolean existApi(String apiId);
}
